import java.util.Arrays;
import java.util.Scanner;
public class Main {
    /*给你一个下标从 1 开始的整数数组 numbers ，该数组已按 非递减顺序排列  ，
    请你从数组中找出满足相加之和等于目标数 target 的两个数。
    如果设这两个数分别是 numbers[index1] 和 numbers[index2] ，
    则 1 <= index1 < index2 <= numbers.length 。
    以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。
    你可以假设每个输入 只对应唯一的答案 ，而且你 不可以 重复使用相同的元素。
    你所设计的解决方案必须只使用常量级的额外空间。*/
    public static int[] seekcoordinate(int[] nums,int target) {
        //双重for 循环时间复杂度为n2，容易爆，故使用while循环n
        int n=nums.length;
        int left=0;
        int right=n-1;
        while(left<right){
            if(nums[left]+nums[right]==target){
                return new int[]{left+1,right+1};
            }
            else if(nums[left]+nums[right]<target){
                left++;
            }
            else right--;
        }
        return new int[]{-1,-1};
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int target=sc.nextInt();
        int[] arr=seekcoordinate(nums,target);
        System.out.println(Arrays.toString(arr));
    }
}